#pragma once
#include "Record.h"

#include <list>



class CRecordContainer : 
	public CRecord
{
public:
	CRecordContainer();
	~CRecordContainer();


	virtual void                         Add(CRecord*);
	virtual std::list<CRecord*>*         GetRecordList();
	virtual CRecord*                     GetRecordWrapAround(CRecord*);
	virtual CRecord*                     GetRecordWrapAround(CTime& begin, CTime& end);
	CRecord*                             GetFirst();
	CRecord*                             GetLast();
	CRecord*                             GetPrevRecord(CRecord* );
	CRecord*                             GetNextRecord(CRecord* );
	UINT                                 GetVirginNumber();
	UINT                                 DecreaseVirginNumber();
	UINT                                 IncreaseVirginNumber();
	void                                 IncreaseSize(ULONGLONG  size);
	void                                 DecreaseSize(ULONGLONG size);
	virtual void                         Remove(CRecord*);
	virtual void                         Fuck();

protected:
	UINT   mVirginNumber;
	std::list<CRecord*> mRecordList;
};

